home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MOS / SYSUTIL0.D < prev    next >
Encoding:
Modula Definition  |  1990-05-13  |  2.1 KB  |  59 lines

  1. DEFINITION MODULE SysUtil0;
  2.  
  3. FROM SYSTEM IMPORT BYTE, WORD, LONGWORD, ADDRESS;
  4.  
  5. PROCEDURE ClearVar ( VAR data: ARRAY OF BYTE );
  6.   (* Löscht eine beliebige Variable. Z.B. Records, Arrays. *)
  7.  
  8. PROCEDURE VarCleared ( REF data: ARRAY OF BYTE ): BOOLEAN;
  9.   (* Liefert TRUE, wenn gesamte Variable nur Nullbytes enthält. *)
  10.  
  11. PROCEDURE VarEqual ( REF data1, data2: ARRAY OF BYTE ): BOOLEAN;
  12.   (* Liefert TRUE, wenn beide Variablen gleich sind. *)
  13.  
  14. PROCEDURE SwapVar ( VAR data1, data2: ARRAY OF BYTE );
  15.   (*
  16.    * Vertauscht 'data1' und 'data2'. Belegen die Variablen verschieden
  17.    * viele Bytes im Speicher, tritt ein Laufzeitfehler (Overflow) auf.
  18.    *)
  19.  
  20. PROCEDURE CopyVar ( REF data1: ARRAY OF BYTE; VAR data2: ARRAY OF BYTE; VAR ok: BOOLEAN );
  21.   (*
  22.    * Kopiert 'data1' nach 'data2'. Wenn 'data2' weniger Bytes faßt, als
  23.    * 'data1' groß ist, liefert 'ok' FALSE und es wird nur der passende
  24.    * Bereich kopiert, sonst ist 'ok' TRUE.
  25.    *)
  26.  
  27. PROCEDURE Peek ( addr: ADDRESS ): CARDINAL;
  28.   (*
  29.    * Liefert den Wert des Bytes an Adresse 'addr'.
  30.    *)
  31.  
  32. PROCEDURE Poke ( addr: ADDRESS; value: WORD );
  33.   (*
  34.    * Schreibt 'value' MOD 256 in das Byte auf Adresse 'addr'.
  35.    *)
  36.  
  37. PROCEDURE Byte ( value: WORD ): BYTE;
  38.   (* Konvertiert einen CARDINAL-/INTEGER-Wert in einen BYTE-Wert *)
  39.  
  40. PROCEDURE Cardinal ( value: BYTE ): CARDINAL;
  41.   (* Konvertiert einen BYTE-Wert in einen CARDINAL-Wert *)
  42.  
  43. PROCEDURE InByte ( bitNo: CARDINAL; value: BYTE     ): BOOLEAN;
  44. PROCEDURE InWord ( bitNo: CARDINAL; value: WORD     ): BOOLEAN;
  45. PROCEDURE InLong ( bitNo: CARDINAL; value: LONGWORD ): BOOLEAN;
  46.   (* Liefern TRUE, wenn das Bit 'bitNo' in 'value' gesetzt ist. *)
  47.  
  48. PROCEDURE BIncl ( VAR value: BYTE;     bitNo: CARDINAL );
  49. PROCEDURE WIncl ( VAR value: WORD;     bitNo: CARDINAL );
  50. PROCEDURE LIncl ( VAR value: LONGWORD; bitNo: CARDINAL );
  51.   (* Setzt das Bit 'bitNo' in 'value'. *)
  52.  
  53. PROCEDURE BExcl ( VAR value: BYTE;     bitNo: CARDINAL );
  54. PROCEDURE WExcl ( VAR value: WORD;     bitNo: CARDINAL );
  55. PROCEDURE LExcl ( VAR value: LONGWORD; bitNo: CARDINAL );
  56.   (* Löscht das Bit 'bitNo' in 'value'. *)
  57.  
  58. END SysUtil0.
  59.